/**
* Koya is an alfresco module that provides a corporate orientated dataroom.
*
* Copyright (C) Itl Developpement 2014
*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see `<http://www.gnu.org/licenses/>`.
*/
package fr.itldev.koya.services.impl;
import java.util.List;
import org.apache.commons.lang.NotImplementedException;
import org.codehaus.jackson.type.TypeReference;
import fr.itldev.koya.model.KoyaNode;
import fr.itldev.koya.model.impl.Company;
import fr.itldev.koya.model.impl.Space;
import fr.itldev.koya.model.impl.User;
import fr.itldev.koya.services.SpaceService;
import fr.itldev.koya.services.exceptions.AlfrescoServiceException;
public class SpaceServiceImpl extends AlfrescoRestService implements
SpaceService {
private static final String REST_POST_LISTSPACE = "/s/fr/itldev/koya/space/list?alf_ticket={alf_ticket}";
private static final String REST_POST_LISTSPACE_DEPTH_OPTION = "/s/fr/itldev/koya/space/list?maxdepth={maxdepth}&alf_ticket={alf_ticket}";
/**
* Create a new space
*
* @param user
* @param space
* @param parent
* @return
* @throws AlfrescoServiceException
*/
@Override
public Space create(User user, KoyaNode parent, String title)
throws AlfrescoServiceException {
return (Space) super.create(user, parent, Space.newInstance(title));
}
@Override
public void enable(User user, Space space) throws AlfrescoServiceException {
// TODO specific implementation
throw new NotImplementedException();
}
@Override
public void disable(User user, Space space) throws AlfrescoServiceException {
throw new NotImplementedException();
}
@Override
public List<Space> list(User user, Company company, Integer... depth)
throws AlfrescoServiceException {
if (depth.length > 0) {
return fromJSON(
new TypeReference<List<Space>>() {
},
getTemplate().postForObject(
getAlfrescoServerUrl()
+ REST_POST_LISTSPACE_DEPTH_OPTION,
company, String.class, depth[0],
user.getTicketAlfresco()));
} else {
return fromJSON(
new TypeReference<List<Space>>() {
},
getTemplate().postForObject(
getAlfrescoServerUrl() + REST_POST_LISTSPACE,
company, String.class, user.getTicketAlfresco()));
}
}
}